package psn.hui.sys.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import psn.hui.sys.domain.Menu;
import psn.hui.sys.vo.MenuVo;

public interface MenuMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(Menu record);

    int insertSelective(Menu record);

    Menu selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(Menu record);

    int updateByPrimaryKey(Menu record);
    
    /**
     * 	查询所有菜单
     */
    List<Menu> queryAllMenu(Menu menu);
    /**
	 * 	根据id统计其子菜单的数量
	 * @param id
	 * @return
	 */
	Integer countChildrenById(Integer id);
	/**
	 * 	根据mid删除sys_role_menu中的相关记录 
	 * @param mid
	 * @return
	 */
	Integer deleteRoleMenuByMid(Integer mid);
	
	/**
     * 	根据rid查询拥有的菜单
     * @param rid
     * @return
     */
	List<Menu> queryMenuByRid(Integer rid);
	/**
	 * 根据用户id获取其可用的菜单(联表sys_menu,sys_role_menu,sys_role_user)
	 * @param menu
	 * @param userId
	 * @return
	 */
	List<Menu> queryMenuByUserId(@Param("available")Integer available, @Param("uid")Integer userId);
    
}